package com.blueocean_health.care.management.service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.blueocean_health.care.management.domain.base.OrderInfo;
import com.blueocean_health.care.management.domain.base.UserPatient;
import com.blueocean_health.care.management.domain.dto.AppSelectOrderInfoDto;
import com.blueocean_health.care.management.domain.dto.OrderInfoDto;
import com.blueocean_health.care.management.domain.dto.OrderSelectInfoEntity;
import com.blueocean_health.care.management.domain.dto.RelationListDto;
import com.blueocean_health.care.management.domain.ordervo.SelectOrderVo;
import com.blueocean_health.care.management.domain.ordervo.ToChargeVo;
import com.blueocean_health.care.management.em.AccountFlagEnum;
import com.blueocean_health.care.management.em.OrderStatusEnum;
import com.blueocean_health.care.management.em.PayStatusEnum;
import com.github.pagehelper.PageInfo;

public interface IOrderSelectService {
	Map<String, Object> selectOrderList(SelectOrderVo order);

	OrderInfoDto selectOrderInfo(SelectOrderVo order);

	Double selectOrdertotalAmount(String orderid);

	// void updateOrderInfoStatus(String id);

	AppSelectOrderInfoDto appSelectOrderInfo(SelectOrderVo order);

	List<OrderSelectInfoEntity> appSelectOrderList(SelectOrderVo order, UserPatient user);

	Map<String, Object> selectReceivableList(ToChargeVo toChargeVo);

	Map<String, Object> toChargeList(ToChargeVo toChargeVo);

	void updateOrderInfoStatus(String id, PayStatusEnum payStatusEnum);

	List<OrderSelectInfoEntity> selectForList(String orderId);

	List<RelationListDto> relationList(SelectOrderVo order);

	int selectUnreadOrder(String hospitalId);

	Map<String, Object> appointmentSelectOrderList(SelectOrderVo order);

	Map<String, Boolean> checkHaveRefund(String orderId);

	Boolean cancelrenewal(String orderid);

	Boolean changeOnlineOrderStatusStatus(String orderid, OrderStatusEnum orderStatus, AccountFlagEnum accountFlag,PayStatusEnum payStatus);

	OrderInfo selectOrderByorderid(String orderid);

	void updateRefundStatus(String orderId,String status);
}
